Dialogbox - Layout DXL interfacing possible?

Hi,

The steps of the task:

1. Provide DB for user inputs (Dates, Modules etc.)
2. The DXL script to process the inputs and insert layout DXL column into a view in an open module.
3. The layout DXL code to use/process the inputs from step 1 above.

I believe: 1. Layout DXL can't read inputs from the DB
2. The DXL script can't pass any data structures to the Layout DXL

Any ideas out there?
SpaceApe - Fri Mar 27 09:44:42 EDT 2009

Re: Dialogbox - Layout DXL interfacing possible?
SystemAdmin - Fri Mar 27 09:59:50 EDT 2009

The correct response depends on your actual need - why do you want to do this?

As a general answer a DOORS DXL script can build up a string of data or DXL functions and insert this string as a Layout DXL column. An example of this kind of functionality can be found in DOORSexample script lib\dxl\example\histcol.dxl.

Re: Dialogbox - Layout DXL interfacing possible?
llandale - Fri Mar 27 11:14:03 EDT 2009

Layouts are simple and of course won't talk to an external dialog box. Digressing: Having your layout initiate a dialog box is not going to work, partly because of the excessive number of times layouts execute. (Having said that, its possible I suppose that the layout can query Windows to see if a window with a particular title is showing, the title of the proposed dialog box). Also, even THINKING about having a layout initiate a box means you don't know what layouts are for.

Anyway, it sounds like you want an on-demand script that displays a dialog and prompts the user for input. That input is to be used for a layout column created by the script. This means the script is going to generate DXL code itself, and insert that code into the layout. That's real tricky. The main build-the-layout function may look like this:

string BuildTheLayout(string NameSourceModFull)
{ string Results =
"Link lnk
for lnk in obj <-\"*\" do
{ ModName_ mSource = source(lnk)
string SourceName = fullName(mSource)
if (SourceName != \"" NameSourceModFull "\") continue // Note use of input parameter here
>>Add code to display info for this link
}"
return(Results)
}

>Louie